package com.um2.compression.grol;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.filechooser.FileFilter;

public class ApplicationJMenuBar extends JMenuBar {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private FenetreApplication fenetre = null ;
	
	public ApplicationJMenuBar(final FenetreApplication fen) {
		
		fenetre = fen ;
		
		JMenu  jmenuFichier = new JMenu("Fichier") ;
		JMenuItem fichierouvrir = new JMenuItem("Ouvrir une image",Utilitaire.createImageIcon("img/open.png")) ;
		
		jmenuFichier.add(fichierouvrir) ;
		
		JMenuItem fichierNew = new JMenuItem("Nouvelle Fenetre",Utilitaire.createImageIcon("img/new.png")) ;
		jmenuFichier.add(fichierNew) ;
		
		JMenuItem fichierSave = new JMenuItem("Enregistrer sous .grol",Utilitaire.createImageIcon("img/save_as.png")) ;
		jmenuFichier.add(fichierSave) ;
		
		JMenuItem fichierOpen = new JMenuItem("Ouvir un *.grol",Utilitaire.createImageIcon("img/save.png")) ;
		jmenuFichier.add(fichierOpen) ;
		
		
		fichierouvrir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				JFileChooser jfc = new JFileChooser("./") ;
				jfc.removeChoosableFileFilter(jfc.getFileFilter());
				jfc.addChoosableFileFilter(new Filtre2());

				
				if (jfc.showDialog(null, "ouvrir une image") == JFileChooser.APPROVE_OPTION)
				{
					File f = jfc.getSelectedFile() ;	
					fen.setImage(f) ;
				}
			}}) ;
		
		fichierNew.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
					new FenetreApplication() ;
			}}) ;
		
		fichierSave.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
					fen.enregistrer() ;
			}}) ;
		
		fichierOpen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
					fen.ouvrir() ;
					fen.getPanneauCentre().getTabs().setSelectedIndex(13) ;
			}}) ;
		
		
		
		JMenu  jmenuInfos = new JMenu("Affichage") ;
		JMenuItem infoGlobal = new JMenuItem("informations",Utilitaire.createImageIcon("img/info.png")) ;
		jmenuInfos.add(infoGlobal) ;
		infoGlobal.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				fenetre.afficherInfos() ;
			}}) ;
		
		
		this.add(jmenuFichier) ;
		this.add(jmenuInfos) ;
		
	}
	
}


class Filtre2 extends FileFilter
{
	public boolean accept(File f)
	{
		return (f.getName().endsWith(".jpg") || 
				f.getName().endsWith(".JPG") || 
				f.getName().endsWith(".gif") || 
				f.getName().endsWith(".GIF") ||
				f.getName().endsWith(".jpeg") || 
				f.getName().endsWith(".JPEG") || 
				f.getName().endsWith(".PNG") ||
				f.getName().endsWith(".png") ||
				f.isDirectory());
	}

    public String getDescription() 
	{
		return ("fichier image (*.jpg,gif,png)");
	}
}